╬πδαΓδσφΦσ

╟Γ≤Ω Γ α∩δσ≥α⌡ Java
╟απ≡≤τΩα Φ ∩≡εΦπ≡√ΓαφΦσ
└∩δσ≥ PlayClip

    └∩δσ≥ PlayClip

    └∩δσ≥ PlayClip Σσ∞εφ±≥≡Φ≡≤σ≥ Φ±∩εδⁿτεΓαφΦσ Φφ≥σ≡⌠σΘ±α AudioClip. ┬ σπε εΩφσ (≡Φ±. 1) Φ∞σ■≥±  ≥≡Φ Ωφε∩ΩΦ ± φατΓαφΦ ∞Φ Play, Loop Φ Stop.

    pic01.gif (1685 bytes)

    ╨Φ±. 1. ╬Ωφε α∩δσ≥α PlayClip

    ╤≡ατ≤ ∩ε±δσ τα∩≤±Ωα α∩δσ≥α Ωφε∩Ωα Stop φα⌡εΣΦ≥±  Γ ταßδεΩΦ≡εΓαφφε∞ ±ε±≥ε φΦΦ. ┼±δΦ φαµα≥ⁿ Ωφε∩Ω≤ Play ΦδΦ Loop, φα≈φσ≥± , ±εε≥Γσ≥±≥Γσφφε, εΣφεΩ≡α≥φεσ ∩≡εΦπ≡√ΓαφΦσ ΦδΦ ∩≡εΦπ≡√ΓαφΦσ Γ ÷ΦΩδσ ⌠αΘδα ± Φ∞σφσ∞ kaas.au, ≡α±∩δεµσφφεπε Γ ≥ε∞ µσ Ωα≥αδεπσ, ≈≥ε Φ ΣΓεΦ≈φ√Θ ⌠αΘδ α∩δσ≥α PlayClip.

    ╩επΣα φα≈Φφασ≥±  ∩≡εΦπ≡√ΓαφΦσ τΓ≤ΩεΓεπε ⌠αΘδα, Ωφε∩Ωα Stop ≡ατßδεΩΦ≡≤σ≥± , ≈≥ε ∩ετΓεδ σ≥ ε±≥αφεΓΦ≥ⁿ ∩≡εΦπ≡√ΓαφΦσ.

    ╚±⌡εΣφ√σ ≥σΩ±≥√ ∩≡ΦδεµσφΦ 

    ╬±φεΓφεΘ ⌠αΘδ Φ±⌡εΣφ√⌡ ≥σΩ±≥εΓ ∩≡ΦδεµσφΦ  ∩≡ΦΓσΣσφ Γ δΦ±≥Φφπσ 1.

    ╦Φ±≥Φφπ 1. ╘αΘδ PlayClip.java

    import java.applet.*;
    import java.awt.*;
    public class PlayClip extends Applet
    {
      private String m_ClipName = "kaas.au";
      private final String 
        PARAM_ClipName = "ClipName";
      AudioClip auClip;
      Button btPlay;
      Button btLoop;
      Button btStop;
      boolean fLoopPlay = false;
      public String getAppletInfo()
      {
        return "Name: PlayClip";
      }
      public String[][] getParameterInfo()
      {
        String[][] info =
        {
          { 
    	PARAM_ClipName, 
    	"String", 
    	"Audioclip filename" 
          },
        };
        return info;
      }
      public void init()
      {
        String param;
        param = getParameter(PARAM_ClipName);
        if (param != null)
          m_ClipName = param;
        btPlay = new Button("Play");
        btLoop = new Button("Loop");
        btStop = new Button("Stop");
        btStop.disable();
        add(btPlay);
        add(btLoop);
        add(btStop);
        auClip = this.getAudioClip(getCodeBase(),
          m_ClipName);
      }
      public boolean action(Event evt,
        Object obj)
      {
        Button btn;
        if(evt.target instanceof Button)
        {
          btn = (Button)evt.target;
          if(evt.target.equals(btPlay))
          {
            auClip.play();
            btStop.enable();
          }
          else if(evt.target.equals(btLoop))
          {
            auClip.loop();
            fLoopPlay = true;
            btStop.enable();
          }
          else if(evt.target.equals(btStop))
          {
            auClip.stop();
            fLoopPlay = false;
            btStop.disable();
          }
          else
          {
            return false;
          }
          return true;
        }
        return false;
      }
      public void paint(Graphics g)
      {
        Dimension dimAppWndDimension = size(); 
        g.setColor(Color.yellow);
        g.fillRect(0, 0, 
          dimAppWndDimension.width  - 1, 
          dimAppWndDimension.height - 1);
        g.setColor(Color.black);
        g.drawRect(0, 0, 
          dimAppWndDimension.width  - 1, 
          dimAppWndDimension.height - 1);
      }
      public void start()
      {
        if(fLoopPlay)
          auClip.loop();
      }	
      public void stop()
      {
        if(fLoopPlay)
          auClip.stop();
      }
    }

    ┬ δΦ±≥Φφπσ 2 Γ√ φαΘΣσ≥σ Φ±⌡εΣφ√Θ ≥σΩ±≥ ΣεΩ≤∞σφ≥α HTML, ±ετΣαφφεπε αΓ≥ε∞α≥Φ≈σ±ΩΦ Σδ  φα°σπε ∩≡ΦδεµσφΦ  ±Φ±≥σ∞εΘ Java WorkShop.

    ╦Φ±≥Φφπ 2. ╘αΘδ PlayClip.tmp.html

    <applet name="PlayClip"
      code="PlayClip"
      codebase=
    "file:/e:/sun/articles/vol14/src/PlayClip"
     width="200"
     height="100"
     align="Top"
      alt="If you had a java-enabled browser,
     you would see an applet here.">
    <param name="ClipName" value="kaas.au">
    <hr>
    If your browser recognized the applet tag,
     you would see an applet here. 
    <hr>
    </applet>

    ╬∩Φ±αφΦσ Φ±⌡εΣφεπε ≥σΩ±≥α

    ┬ πδαΓφε∞ Ωδα±±σ α∩δσ≥α ε∩≡σΣσδσφε φσ±ΩεδⁿΩε ∩εδσΘ Φ ∞σ≥εΣεΓ. ╨α±±∞ε≥≡Φ∞ ²≥Φ ∩εδ  Φ φαΦßεδσσ Γαµφ√σ ∞σ≥εΣ√.

    ╧εδ  Ωδα±±α PlayClip

    ┬ ∩εδσ m_ClipName ⌡≡αφΦ≥±  Φ∞  τΓ≤ΩεΓεπε ⌠αΘδα, Ωε≥ε≡εσ ∩σ≡σΣασ≥±  ≈σ≡στ ∩α≡α∞σ≥≡ ClipName Φτ ΣεΩ≤∞σφ≥α HTML. ╧ε ≤∞εδ≈αφΦ■ Σδ  ²≥επε ∩α≡α∞σ≥≡α Φ±∩εδⁿτ≤σ≥±  τφα≈σφΦσ kaas.au.

    ╤≥≡εΩα PARAM_ClipName ⌡≡αφΦ≥ Φ∞  ≤Ωαταφφεπε Γ√°σ ∩α≡α∞σ≥≡α.

    ╤±√δΩα φα Φφ≥σ≡⌠σΘ± AudioClip ⌡≡αφΦ≥±  Γ ∩εδσ auClip:

    AudioClip auClip;

    ╤δσΣ≤■∙Φσ ≥≡Φ ∩εδ  ⌡≡αφ ≥ ±±√δΩΦ φα Ωφε∩ΩΦ, ∩≡σΣφατφα≈σφφ√σ Σδ  ≤∩≡αΓδσφΦ  ∩≡εΦπ≡√ΓαφΦσ∞ τΓ≤ΩεΓεπε ⌠αΘδα:

    Button btPlay;
    Button btLoop;
    Button btStop;

    ╧εδσ fLoopPlay ≥Φ∩α boolean Φ±∩εδⁿτ≤σ≥±  Σδ  ⌠δαπα, Ωε≥ε≡√∞ ε≥∞σ≈ασ≥±  ≡σµΦ∞ ∩≡εΦπ≡√ΓαφΦ  τΓ≤ΩεΓεπε ⌠αΘδα Γ ÷ΦΩδσ.

    ╠σ≥εΣ getParameterInfo

    ╠σ≥εΣ getParameterInfo ΓετΓ≡α∙ασ≥ ε∩Φ±αφΦσ σΣΦφ±≥Γσφφεπε ∩α≡α∞σ≥≡α φα°σπε α∩δσ≥α, ≈σ≡στ Ωε≥ε≡√Θ ∩σ≡σΣασ≥±  Φ∞  τΓ≤ΩεΓεπε ⌠αΘδα.

    ╠σ≥εΣ init

    ╤≡ατ≤ ∩ε±δσ τα∩≤±Ωα α∩δσ≥α ∞σ≥εΣ init ∩εδ≤≈ασ≥ τφα≈σφΦσ ∩α≡α∞σ≥≡α - Φ∞  τΓ≤ΩεΓεπε ⌠αΘδα, Φ σ±δΦ ²≥ε≥ ∩α≡α∞σ≥≡ ταΣαφ Γ ΣεΩ≤∞σφ≥σ HTML, τα∩Φ±√Γασ≥ ∩εδ≤≈σφφεσ Φ∞  Γ ∩εδσ m_ClipName:

    param = getParameter(PARAM_ClipName);
    if(param != null)
      m_ClipName = param;

    ─αδσσ ±ετΣα■≥±  ≥≡Φ Ωφε∩ΩΦ, ≤∩≡αΓδ ■∙Φσ τΓ≤≈αφΦσ∞ α∩δσ≥α:

    btPlay = new Button("Play");
    btLoop = new Button("Loop");
    btStop = new Button("Stop");

    ╩φε∩Ωα Stop ßδεΩΦ≡≤σ≥± , ≥αΩ ΩαΩ φα Σαφφ√Θ ∞ε∞σφ≥ ∩≡εΦπ≡√ΓαφΦσ σ∙σ φσ τα∩≤∙σφε:

    btStop.disable();

    ─δ  ßδεΩΦ≡εΓαφΦ  Γ√τ√Γασ≥±  ∞σ≥εΣ disable, ε∩≡σΣσδσφφ√Θ Γ Ωδα±±σ Button.

    ╧εΣπε≥εΓδσφφ√σ ≥αΩΦ∞ εß≡ατε∞ Ωφε∩ΩΦ ΣεßαΓδ ■≥±  Γ εΩφε α∩δσ≥α:

    add(btPlay);
    add(btLoop);
    add(btStop);

    ╧ε±δσΣφσσ, ≈≥ε Σσδασ≥ ∞σ≥εΣ init ∩σ≡σΣ ≥σ∞ ΩαΩ ΓετΓ≡α≥Φ≥ⁿ ≤∩≡αΓδσφΦσ, ²≥ε ∩εδ≤≈σφΦσ ±±√δΩΦ φα Φφ≥σ≡⌠σΘ± AudioClip:

    auClip = this.getAudioClip(
      getCodeBase(),m_ClipName);

    └Σ≡σ± URL Ωα≥αδεπα, Γ Ωε≥ε≡ε∞ ≡α±∩εδεµσφ α∩δσ≥, ε∩≡σΣσδ σ≥±  ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣα getCodeBase, ε Ωε≥ε≡ε∞ ∞√ πεΓε≡ΦδΦ Γ ∩≡σΣ√Σ≤∙σΘ πδαΓσ.

    ╠σ≥εΣ action

    ╠σ≥εΣ action ∩εδ≤≈ασ≥ ≤∩≡αΓδσφΦσ, ΩεπΣα ∩εδⁿτεΓα≥σδⁿ φαµΦ∞ασ≥ φα εΣφ≤ Φτ Ωφε∩εΩ, ≡α±∩εδεµσφφ√⌡ Γ εΩφσ α∩δσ≥α. ┬ ταΓΦ±Φ∞ε±≥Φ ε≥ ≥επε, ΩαΩα  Φ∞σφφε Ωφε∩Ωα ß√δα φαµα≥α, Γ√∩εδφ ■≥±  ≡ατδΦ≈φ√σ ΣσΘ±≥ΓΦ .

    ┼±δΦ ∩εδⁿτεΓα≥σδⁿ φαµαδ Ωφε∩Ω≤ Play, Γ√τ√Γασ≥±  ∞σ≥εΣ play Σδ  τα∩≤±Ωα εΣφεΩ≡α≥φεπε ∩≡εΦπ≡√ΓαφΦ  τΓ≤ΩεΓεπε ⌠αΘδα:

    auClip.play();
    btStop.enable();

    ╤≡ατ≤ ∩ε±δσ ≥επε ΩαΩ ∩≡εΦπ≡√ΓαφΦσ ß≤Σσ≥ τα∩≤∙σφε, ∩≡ΦδεµσφΦσ ≡ατßδεΩΦ≡≤σ≥ Ωφε∩Ω≤ Stop, ∩≡σΣε±≥αΓδ   ∩εδⁿτεΓα≥σδ■ Γετ∞εµφε±≥ⁿ ∩≡σ≡Γα≥ⁿ τΓ≤≈αφΦσ.

    ┬ ≥ε∞ ±δ≤≈ασ, ΩεπΣα ∩εδⁿτεΓα≥σδⁿ φαµαδ Ωφε∩Ω≤ Loop, Γ√τ√Γασ≥±  ∞σ≥εΣ loop, τα∩≤±≈Ωα■∙ΦΘ ∩≡εΦπ≡√ΓαφΦσ τΓ≤ΩεΓεπε ⌠αΘδα Γ ÷ΦΩδσ:

    auClip.loop();
    fLoopPlay = true;
    btStop.enable();

    ╧ε±δσ τα∩≤±Ωα ≤±≥αφαΓδΦΓασ≥±  ⌠δαπ fLoopPlay Φ ≡ατßδεΩΦ≡≤σ≥±  Ωφε∩Ωα Stop.

    ╚, φαΩεφσ÷, σ±δΦ ∩εδⁿτεΓα≥σδⁿ φαµΦ∞ασ≥ Ωφε∩Ω≤ Stop, Γ√∩εδφ σ≥±  ε±≥αφεΓΩα ∩≡εΦπ≡√ΓαφΦ  ∞σ≥εΣε∞ stop:

    auClip.stop();
    fLoopPlay = false;
    btStop.disable();

    ╘δαπ fLoopPlay ±ß≡α±√Γασ≥± , ∩ε±δσ ≈σπε Ωφε∩Ωα Stop ßδεΩΦ≡≤σ≥± .

    ╠σ≥εΣ start

    ╠σ≥εΣ start ∩εδ≤≈ασ≥ ≤∩≡αΓδσφΦσ ∩≡Φ ∩σ≡Γε∞ τα∩≤±Ωα α∩δσ≥α, α ≥αΩµσ ΩεπΣα ±≥≡αφΦ÷α ΣεΩ≤∞σφ≥α ∩ε Γδ σ≥±  ΓφεΓⁿ ∩ε±δσ ≥επε ΩαΩ ∩εδⁿτεΓα≥σδⁿ Γ≡σ∞σφφε ∩σ≡σ⌡εΣΦδ Ω ∩≡ε±∞ε≥≡≤ Σ≡≤πεΘ ±≥≡αφΦ÷√.

    ═α°α ≡σαδΦτα÷Φ  ∞σ≥εΣα start ΓετεßφεΓδ σ≥ ÷ΦΩδΦ≈σ±Ωεσ ∩≡εΦπ≡√ΓαφΦσ, σ±δΦ εφε Γ√∩εδφ δε±ⁿ, ΩεπΣα ∩εδⁿτεΓα≥σδⁿ ∩εΩΦφ≤δ ±≥≡αφΦ÷≤ ± α∩δσ≥ε∞:

    if(fLoopPlay)
      auClip.loop();

    ╠σ≥εΣ stop

    ┼±δΦ ∩εδⁿτεΓα≥σδⁿ τα∩≤±≥Φδ ∩≡εΦπ≡√ΓαφΦσ τΓ≤ΩεΓεπε ⌠αΘδα Γ ÷ΦΩδσ, α τα≥σ∞ ∩σ≡σ°σδ Ω ∩≡ε±∞ε≥≡≤ Σ≡≤πεΘ ±≥≡αφΦ÷√, ∞σ≥εΣ stop ε±≥αφαΓδΦΓασ≥ ÷ΦΩδΦ≈σ±Ωεσ ∩≡εΦπ≡√ΓαφΦσ:

    if(fLoopPlay)
      auClip.stop();

    ╩επΣα ∩εδⁿτεΓα≥σδⁿ Γσ≡φσ≥±  Ω ∩≡ε±∞ε≥≡≤ φα°σΘ ±≥≡αφΦ÷√, ∞σ≥εΣ start, ε∩Φ±αφφ√Θ Γ√°σ, ΓετεßφεΓΦ≥ ∩≡εΦπ≡√ΓαφΦσ τΓ≤ΩεΓεπε ⌠αΘδα.



Java | ╧≡εΣ≤Ω≥√ Φ ≡σ°σφΦ  | ╥σ⌡φεδεπΦΦ | ╤σ≡ΓΦ± Φ εß≤≈σφΦσ
╬ Ωε∞∩αφΦΦ | ╧α≡≥φσ≡√ | ═εΓε±≥Φ | ╧εΦ±Ω
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content